package com.zudada.servermain.Service;

import com.zudada.servermain.POJO.DTO.DateStatsQueryDTO;
import com.zudada.servermain.POJO.DTO.StatsQueryDTO;
import com.zudada.servermain.POJO.VO.PeriodStatsVO;
import com.zudada.servermain.POJO.VO.ReportVO;

import java.util.List;

public interface PortStatsService {

    /**
     * 计算并保存指定周期的港口吞吐量统计
     * @param periodType 周期类型（DAY/WEEK/MONTH/YEAR）
     */
    void calculateAndSaveStats(String periodType);

    List<PeriodStatsVO>  getStatsByPeriod(StatsQueryDTO statsQueryDTO);

    /**
     * 获取吞吐量统计数据（ECharts格式）
     * @param queryDTO 查询条件（包含portId和dateList）
     * @return ReportVO ECharts格式的吞吐量统计数据
     */
    ReportVO getThroughputStats(DateStatsQueryDTO queryDTO);

    /**
     * 获取船舶数统计数据（ECharts格式）
     * @param queryDTO 查询条件（包含portId和dateList）
     * @return ReportVO ECharts格式的船舶数统计数据
     */
    ReportVO getVesselCountStats(DateStatsQueryDTO queryDTO);
}
